package com.yang.service;

import com.yang.entity.NoteThings;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 事件表(NoteThings)表服务接口
 *
 * @author yangdacheng
 * @since 2022-03-02 19:11:03
 */
public interface NoteThingsService {
    /**
     * 添加新的事件
     * @param noteThings
     * @return
     */
    Boolean insertNoteThings(NoteThings noteThings);

    /**
     * 修改事件
     * @param noteThings
     * @return
     */
    Boolean updateNoteThings(NoteThings noteThings);

    /**
     * 根据编号删除对应事件
     * @param thingsID
     * @return
     */
    Boolean deleteNoteThings(String thingsID);

    /**
     * 查询所有的事件
     * @return
     */
    List<NoteThings> queryAllThings();

    /**
     * 根据事件编号获取事件
     * @param thingsID
     * @return
     */
    NoteThings queryThingsByID(String thingsID);

    /**
     * 查询用户下未打卡事件数量
     * @param thingsID
     * @return
     */
    Integer queryPunchByState(String thingsID);

    /**
     * 获取所有未打卡事件
     * @return
     */
    List<NoteThings> queryAllThingNoPunch();

    /**
     * 获取多少天前发送与打卡的比例
     * @param userID 用户编号
     * @param beforeDay 多少天前
     * @param isSend 是否发送
     * @param punchState 是否大侃
     * @return
     */
    Double queryPunchConvertSend(String userID,Integer beforeDay,Integer isSend,Integer punchState);

    /**
     * 例：查询今天之后为发送的数据类型为邮箱发送状态为打开
     * @param userID 用户编号
     * @param state 状态
     * @return
     */
    Integer queryNumberByEmailAfter(String userID,Integer state);

    /**
     * 查询短信为发送数量
     * @param userID
     * @param state
     * @return
     */
    Integer queryNumberBySmsAfter(String userID,Integer state);
}